import java.util.Arrays;

public class MyStack {
    //模拟实现
    int[] array;
    int size;

    MyStack(){
        array = new int[5];
    }

    public int push(int data){
        if(size == array.length){
            array = Arrays.copyOf(array, array.length * 2);
        }

        array[size++] = data;
        return data;
    }

    public int pop(){
        int tmp = peek();
        if(size > 0){
            size--;
        }

        return tmp;
    }

    public int peek(){
        if(empty()){
            throw new StackEmptyException("栈为空");
        }

        return array[size - 1];
    }

    public int size(){
        return size;
    }

    public boolean empty(){
        return 0 == size;
    }

    //测试使用

    public static void main(String[] args) {
        MyStack stack = new MyStack();
        for(int i = 0; i < 5; i++){
            stack.push(i + 1);
        }

        while(!stack.empty()){
            System.out.println(stack.pop());
        }
        String s;

    }

//    public static void main1(String[] args) {
//        Stack<Integer> stack = new Stack<>();
//        for(int i = 0; i < 5; i++){
//            stack.push(i + 1);
//        }
//
//        System.out.println(stack.search(5));
//
//        while(!stack.empty()){
//            System.out.println(stack.pop());
//        }
//    }

}
